<?php
/**
 * Hesperos libraries
 *
 * @author       Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright    Copyright (c) 2011 Krzysztof Kardasz
 * @category     Hesperos
 * @package      Model
 * @subpackage   Domain
 * @version 	 SVN: $Id$
 * @filesource
 */

/**
 * Data Mapper
 *
 * @author       Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright    Copyright (c) 2011 Krzysztof Kardasz
 * @category     Hesperos
 * @package      Model
 * @subpackage   Domain
 */
abstract class Hesperos_Model_Mapper
{
    /**
     * Źródło danych
     *
     * @var null|Hesperos_Model_iDataSource
     */
    private $_dataSource = null;

    /**
     * Definiuje źródło danych
     *
     * @param Hesperos_Model_iDataSource $ds datasource
     * @return void
     */
    public function setDataSource (Hesperos_Model_iDataSource $ds)
    {
        $this->_dataSource = $ds;
    }

    /**
     * Zwraca źródło danych
     *
     * @return Hesperos_Model_iDataSource
     * @throws Exception
     */
    public function getDataSource ()
    {
        if($this->_dataSource === null) {
            throw new Exception ('DataSource not set');
        }
        return $this->_dataSource;
    }
}